package traitement;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Hashtable;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.DAO;
import dao.DAOFactory;
import pojo.Produit;;

/**
 * Servlet implementation class TestDAO
 */
@WebServlet("/TestDAO")
public class TestDAO extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestDAO() {
        super();
        // TODO Auto-generated constructor stub
    }

	/* (non-Javadoc)
	 * @see javax.servlet.GenericServlet#init()
	 */
	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		
		
	}
	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		//Flux de sortie
		PrintWriter out = response.getWriter();
		response.setContentType("text/html");
		
		DAO<Produit> daoprod = DAOFactory.getDAOProduits();
		
		Produit p1 = new Produit("Test", (float)1.5, 5);
		daoprod.create(p1);
		out.println("fin create<br />");
		ArrayList<Produit> listProduit = (ArrayList<Produit>)daoprod.findAll();
		out.println("FindAll<br />");
		Hashtable<String, Produit> t = new Hashtable<String, Produit>();
		for(int i = 0; i < listProduit.size() ; i++){
			t.put(listProduit.get(i).getNom(), listProduit.get(i));
			out.println("Produits : Id : " + listProduit.get(i).getId() + ", nom : " + 
											listProduit.get(i).getNom() + ", Prix unitaire : " +
											listProduit.get(i).getPrix_unitaire() + ", qte dispo : " + 
											listProduit.get(i).getQuantite_disponible() + "<br />");
		}
		if(t.containsKey("Test")){
			p1.setId(((Produit)t.get("Test")).getId());
			//out.println("Produits(Id : " + ((Produits)t.get("Test")).getId() + ") : " + ((Produits)t.get("Test")).getNom() + "<br />");
		}
		p1.setPrix_unitaire((float)53.0);
		p1.setQuantite_disponible(10);
		daoprod.update(p1);
		out.println("Update<br />");
		daoprod.delete(p1);
		out.println("Delete<br />");
		Produit p2 = daoprod.find(p1.getId());
		out.println("Produits : Id : " + p2.getId() + ", nom : " + 
				p2.getNom() + ", Prix unitaire : " +
				p2.getPrix_unitaire() + ", qte dispo : " + 
				p2.getQuantite_disponible() + "<br />");
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}
